package demo.demo03;

/*现有的问题描述；
对于类似的多个方法，全都是执行相加的操作，但是因为参数列表的不一样，所以要记住多个名字太麻烦

解决方案;
使用方法的重载 即可完成-----Method_Overload
对于类似功能的多个方法，只要记住一个相同的方法名即可，可以根据参数列表的不同进行自动pipei

方法的重载（Method_Overload）：方法的名称相同但是参数列表不一样。

注意事项：
1.什么叫做参数列表的不同？
  1.参数的个数不同
  2.参数的类型不同        int+int   double+double
  3.参数的多类型顺序不同         int+double   int+double
  重载与下列因素无关：
  1.与返回值类型无关；
  2.与参数的名称无关；
*/
public class Method_Overload {
    public static void main(String[] args) {
//        System.out.println(sum1(1,2));
//        System.out.println(sum2(1,2,3));
//        System.out.println(sum3(1,2,3,4));
        System.out.println(sum(1, 2, 3));
        System.out.println(sum(1, 2));
        System.out.println(sum(1, 2, 3, 4));
//        System.out.println(sum(1,2,3,4,5));    对不上下面的方法   就会报错
        System.out.println(sum(8));//double
        System.out.println(sum(8.12, 3));
    }

    public static int sum(int a, int b) {
        System.out.println("有两个参数的方法执行了！");
        return a + b;
        //int result=a+b
        // return result;
    }

    public static int sum(int a, int b, int c) {
        System.out.println("有三个个参数的方法执行了！");
        return a + b + c;
    }

    public static int sum(int a, int b, int c, int d) {
        System.out.println("有四个参数的方法执行了！");
        return a + b + c + d;
    }

    public static double sum(double a) {
        System.out.println("有四个参数的方法执行了！");
        return a;
    }

    public static double sum(double a, int b) {
        //表达式运算的数据类型不一样     那个范围大就用那!
        System.out.println("有四个参数的方法执行了！");
        return a + b;
    }
}
